/***********************************************************************************
			FUNCION AJAX PARA EJECUCION DE USUARIOS								
***********************************************************************************/

var url_ubicacion = "";
var url= "";

function ejecutarUsuario(parametros)
{	
  	$.ajax({ async:true, type: "GET", dataType: "html", url:"parts/usuarios/ajax/ejecutarUsuario.php", data:parametros, beforeSend:inicioUsuario, success:llegadaDatosUsuario, timeout:2000, error:problemasUsuario }); 
	return false;
}

function inicioUsuario()
{

      $("#ejecutarUsuario").html("<IMG src='" + url_ubicacion + "img/cargando.gif' height='15' width='15' alt='Cargando...'>");
}

function llegadaDatosUsuario(datos)
{
	//alert("DATOS FINALES: "+datos)
	setTimeout("javascript:updateView('parts/usuarios/usuarios.php')"); 
}

function problemasUsuario()
{
	$("#ejecutarUsuario").text('Problemas en el Servidor.');
}


/************************************************************************************/
/*																										*/
/*			FUNCION PARA OPCIONES INSERTAR, EDITAR, CONSULTAR		*/
/*																										*/
/************************************************************************************/
function consultar(parametro)
{
	document.getElementById('_').value = parametro;
	document.formulario.submit();
}
/************************************************************************************/
/*																										*/
/*			FUNCION PARA HACER EL LLAMADO A LA ELIMINACIÓN DE USUARIOS		*/
/*																										*/
/************************************************************************************/
function elimina_usuario()
{	
	if(document.formulario.accion.value==0){
	var confirmar=confirm("¿Realmente desea Eliminar este Usuario?");
	if(confirmar==true)
	{
		var id_usuario= caracter_malo(document.formulario.id.value); 
		var parametros="id_usuario="+id_usuario;
		eliminarUsuario(parametros);
	} else{ 
		javascript:updateView('parts/usuarios/usuarios.php');
		
		}
	}
}

/***********************************************************************************
			FUNCION PARA LA VALIDACION DEL FORMULARIO			
***********************************************************************************/
function valida_usuario()
{	
	if(vacio(document.formulario.nombre.value) == false)
	{	alert("El campo 'NOMBRE' no debe de estar vacio.");
      	document.formulario.nombre.focus();
      	return false;
	}

	if(validarEspacios(document.formulario.nombre.value) == false)
 	{	alert("El campo 'NOMBRE' no debe tener mas de un espacio entre palabras");
       	document.formulario.nombre.focus();
       	return false;
 	} 

	if(busca_letra(document.formulario.nombre.value) == false)
	{	alert("El campo 'NOMBRE' solo debe contener letras.");
      	document.formulario.nombre.focus();
      	return false;
	}

    	if(vacio(document.formulario.apellido.value) == false)
	{	alert("El campo 'APELLIDO' no debe de estar vacio.");
      	document.formulario.apellido.focus();
      	return false;
	}
	
	if(validarEspacios(document.formulario.apellido.value) == false)
 	{	alert("El campo 'APELLIDO' no debe tener mas de un espacio entre palabras");
       	document.formulario.apellido.focus();
       	return false;
 	} 

	if(busca_letra(document.formulario.apellido.value) == false)
	{	alert("El campo 'APELLIDO' solo debe contener letras.");
      	document.formulario.apellido.focus();
      	return false;
	}

	if(vacio(document.formulario.cedula.value) == false)
	{	alert("El campo 'CEDULA' no debe de estar vacio.");
      	document.formulario.cedula.focus();
      	return false;
	}

	if(busca_num(document.formulario.cedula.value) == false)
	{	alert("El campo 'CEDULA' solo debe contener numeros.");
      	document.formulario.cedula.focus();
      	return false;
	}

	if(vacio(document.formulario.cargo.value) == false)
	{	alert("El campo 'CARGO' no debe de estar vacio.");
      	document.formulario.cargo.focus();
      	return false;
	}

	if(validarEspacios(document.formulario.cargo.value) == false)
 	{	alert("El campo 'CARGO' no debe tener mas de un espacio entre palabras");
       	document.formulario.cargo.focus();
       	return false;
 	}  

	if(busca_caracter(document.formulario.cargo.value) == false)
	{	alert("El campo 'CARGO' solo debe contener letras o numeros.");
      	document.formulario.cargo.focus();
      	return false;
	}

	if(vacio(document.formulario.tele.value) == false)
	{	alert("El campo 'TELEFONO' no debe de estar vacio.");
      	document.formulario.tele.focus();
      	return false;
	}	

	if(busca_num(document.formulario.tele.value) == false)
	{	alert("El campo 'TELEFONO' solo debe contener numeros");
      	document.formulario.tele.focus();
      	return false;
	}

	if(vacio(document.formulario.correo.value) == false)
	{	alert("El campo 'CORREO' no debe de estar vacio.");
      	document.formulario.correo.focus();
      	return false;
	}

	if(valEmail(document.formulario.correo.value) == false)
	{	alert("El campo 'CORREO' no tiene el formato correcto.");
      	document.formulario.correo.focus();
      	return false;
	}
	
	if(document.formulario.Perfiles.value == 0)
	{	alert("El campo 'PERFILES' no debe de estar vacio.");
      	document.formulario.Perfiles.focus();
      	return false;
	}

	if(document.formulario.Perfiles.value==2)
	{
		if(document.formulario.ente.value== 0)
		{	
			alert("El campo 'ORGANISMOS' no debe de estar vacio.");
      		document.formulario.ente.focus();
      		return false;
		}
	}

	if(document.formulario.subcomisiones.value == 0)
	{	alert("El campo 'SUBCOMISIONES' no debe de estar vacio.");
      	document.formulario.subcomisiones.focus();
      	return false;
	}

	if(document.formulario.areas.value== 0)
	{	alert("El campo 'AREAS' no debe de estar vacio.");
      	document.formulario.areas.focus();
      	return false;
	}

	if(vacio(document.formulario.usuario.value) == false)
	{	alert("El campo 'LOGIN USUARIO' no debe de estar vacio.");
      	document.formulario.usuario.focus();
      	return false;
	}

	if(validarEspacios(document.formulario.usuario.value) == false)
 	{	alert("El campo 'USUARIO' no debe tener mas de un espacio entre palabras");
       	document.formulario.usuario.focus();
       	return false;
 	} 

	if(busca_caracter(document.formulario.usuario.value) == false)
	{	alert("El campo 'LOGIN USUARIO' solo debe contener letras o numeros.");
      	document.formulario.usuario.focus();
      	return false;
	}


	if(document.formulario.accion.value==1)
	{
		var usuario = document.formulario.usuario.value;
		var cedula = document.formulario.cedula.value;
		var id_cargo = document.formulario.Perfiles.value;
		var id_subcomision = document.formulario.subcomisiones.value;
		var id_areas = document.formulario.areas.value;
		var cedula=document.formulario.cedula.value;
		var id_ente = 0; //le mandamos 0 con ente Vacio cuando selecciona Tecnico como perfil
		var id_ente_ad = 0; //entes adscrito en 0 por defecto
		if(document.formulario.Perfiles.value==2)
		{
			var id_ente=document.formulario.ente.value;
			var id_ente_ad=document.formulario.ente_ad.value;
			var para="usuario="+usuario+"&cedula="+cedula+"&id_cargo="+id_cargo+"&id_ente="+id_ente+"&id_ente_ad="+id_ente_ad+"&id_subcomision="+id_subcomision+"&id_areas="+id_areas;
		}
		else
		{
			var para="usuario="+usuario+"&cedula="+cedula+"&id_cargo="+id_cargo+"&id_subcomision="+id_subcomision+"&id_areas="+id_areas+"&id_ente="+id_ente+"&id_ente_ad="+id_ente_ad;
		}

		//alert(para)
		$.ajax({ async:true, type: "GET", dataType: "html", url:"parts/usuarios/ajax/validarLogin.php", data:para, success:llegadaValidacion, timeout:2000, error:problemasInsertar }); 
	}

	else
	{ 
		if(document.formulario.accion.value==2)
		{
			var usuario = document.formulario.usuario.value;
			var id_usuario= document.formulario.id.value;
			var cedula=document.formulario.cedula.value;
			var id_cargo = document.formulario.Perfiles.value;
			var id_subcomision = document.formulario.subcomisiones.value;
			var id_areas = document.formulario.areas.value;

			if(document.formulario.Perfiles.value==2)
			{
				var id_ente=document.formulario.ente.value;
				var id_ente_ad=document.formulario.ente_ad.value;
			}
			else
			{
				var id_ente=0;
				var id_ente_ad=0;
			}
			var para="usuario="+usuario+"&id_usuario="+id_usuario+"&cedula="+cedula+"&id_cargo="+id_cargo+"&id_ente="+id_ente+"&id_ente_ad="+id_ente_ad+"&id_subcomision="+id_subcomision+"&id_areas="+id_areas;

			//alert(para)

			$.ajax({ async:true, type: "GET", dataType: "html", url:"parts/usuarios/ajax/validarLoginModi.php", data:para, success:llegadaValidacion, timeout:2000, error:problemasInsertar }); 
		}
	
	}
	
	if(document.formulario.accion.value==0)
	{
		var id_perfil= document.formulario.id.value;
		var nombre = document.formulario.nombre.value;
		var descripcion = document.formulario.descripcion.value;
		var accion= document.formulario.accion.value;
		var parametros="nombre="+nombre+"&descripcion="+descripcion+"&accion="+accion+"&id_perfil="+id_perfil;
		eliminarUsuario(parametros);
	}	

}

function llegadaValidacion(datos)
{
	if(datos==1)
	{
		alert("Este login ya existe");
		return false;
	}
	else
	{
		if(datos==2)
		{
			alert("Esta cedula ya existe");
			return false;
		}
		if(datos==3)
		{
			alert("Ya existe un usuario Tecnico en esta Area para esta Subcomision");
			return false;
		}
		if(datos==4)
		{
			alert("Ya existe un usuario Ente Externo en este Organismo, para esta Area perteneciente a esta Subcomision");
			return false;
		}
		if(datos==5)
		{
			alert("Ya existe un usuario Ente Externo,para este Ente adscrito, en esta Area perteneciente a esta Subcomision");
			return false;
		}
	}
		
	if (datos==0)
	{
		var nombre = document.formulario.nombre.value;
		var apellido = document.formulario.apellido.value;
		var cedula = document.formulario.cedula.value;
		var cargo = document.formulario.cargo.value;
		var telefono = document.formulario.tele.value;
		var usuario = document.formulario.usuario.value;
		var accion= document.formulario.accion.value;
		var perfiles=document.formulario.Perfiles.value;
		var id_areas=document.formulario.areas.value;
		var subcomisiones=document.formulario.subcomisiones.value;
		var correo=document.formulario.correo.value;
			
		if(accion==2)
		{
			var id_usuario= document.formulario.id.value;
			var elementos = document.getElementsByName("stat");
 		
			if(elementos[0].checked == false && elementos[1].checked == false)
			{	
				alert("El Usuario debe Poseer un STATUS en el Sistema");
      				document.getElementsByName("stat").focus();
      				return false;
			}
			
			for(var i=0; i<elementos.length; i++) 
			{
  				if(elementos[i].checked==true)
				{
					var sta=elementos[i].value;
					break;
				}
			}
		}
		
		if(document.formulario.accion.value==1)
		{	
			var id_ente=0;
			var id_ente_ad=0;
			if(document.formulario.Perfiles.value==2) //ENTE EXTERNO
			{
				id_ente=document.formulario.ente.value;
				id_ente_ad=document.formulario.ente_ad.value;
				var parametros="nombre="+nombre+"&apellido="+apellido+"&cedula="+cedula+"&cargo="+cargo+"&telefono="+telefono+"&usuario="+usuario+"&accion="+accion+"&id_perfil="+perfiles+"&subcomisiones="+subcomisiones+"&id_ente="+id_ente+"&id_ente_ad="+id_ente_ad+"&correo="+correo+"&id_area="+id_areas;
			}
			else //TECNICO
			{
				var parametros="nombre="+nombre+"&apellido="+apellido+"&cedula="+cedula+"&cargo="+cargo+"&telefono="+telefono+"&usuario="+usuario+"&accion="+accion+"&id_perfil="+perfiles+"&subcomisiones="+subcomisiones+"&correo="+correo+"&id_area="+id_areas+"&id_ente="+id_ente+"&id_ente_ad="+id_ente_ad;
			}
			//alert(parametros)
			insertarUsuario(parametros);
		}
				
		else
		{
			if(document.formulario.accion.value==2)
			{
				alert("Cuenta Modificada");
				if(document.formulario.Perfiles.value==2)
				{
					id_ente=document.formulario.ente.value;
					var id_ente_ad=document.formulario.ente_ad.value;
				}
				else
				{
					var id_ente = 0; //AGREGAMOS ENTRE EXTERNO VACIO
					var id_ente_ad = 0;
				}
				var parametros="nombre="+nombre+"&apellido="+apellido+"&cedula="+cedula+"&cargo="+cargo+"&telefono="+telefono+"&usuario="+usuario+"&accion="+accion+"&id_perfil="+perfiles+"&subcomisiones="+subcomisiones+"&id_ente="+id_ente+"&id_ente_ad="+id_ente_ad+"&id_area="+id_areas+"&id_usuario="+id_usuario+"&status="+sta+"&correo="+correo;
				
				//alert("PARAMETROS DE MODIFICAR: "+parametros)
				ejecutarUsuario(parametros);
			}
		}
	}
}

/*******************************************************************
DESCRIPCION: Funcion para ELIMINAR CARACTERES NO VALIDO
********************************************************************/
function caracter_malo(checkStr)
{
	var checkBAD = "*/-'#\"\\";
	var checkFinal="";

	for (i = 0;  i < checkStr.length;  i++)
	{
		band=0;
		c1 = checkStr.charAt(i);
		for (j = 0;  j < checkBAD.length;  j++)
		{
			c2 = checkBAD.charAt(j);
			if(c2==c1 )
			{
				band=1; break;
			}
		}
		if (band == 0)
		{
			checkFinal=checkFinal+c1;
		}
	}
	return checkFinal;  
 }

/************************************************************************
DESCRIPCION: busca caracteres que no sean espacio en blanco en una cadena
*************************************************************************/
function vacio(campo) {
	for ( i = 0; i < campo.length; i++ ) {
		if ( campo.charAt(i) != "0" ) {
			return true
		}
	}
	return false
}


/***********************************************************************************
		FUNCION AJAX PARA LA ELIMINACION DE USUARIOS								
***********************************************************************************/
function eliminarUsuario(parametros)
{
	$.ajax({ async:true, type: "GET", dataType: "html", url:"parts/usuarios/ajax/eliminarUsuario.php", data:parametros, beforeSend:inicioEliminar, success:llegadaEliminar, timeout:2000, error:problemasEliminar }); 
	return false;
}

function inicioEliminar()
{

      $("#eliminarUsuario").html("<IMG src='" + url_ubicacion + "img/cargando.gif' height='15' width='15' alt='Cargando...'>");
}

function llegadaEliminar(datos)
{	
	alert("Tu cuenta ha sido desactivada");
	setTimeout("javascript:updateView('parts/usuarios/usuarios.php')"); 
}

function problemasEliminar()
{
	$("#eliminarUsuarios").text('Problemas en el Servidor.');
}

/***********************************************************************************
			FUNCION AJAX PARA INSERTAR USUARIOS								
***********************************************************************************/
function insertarUsuario(parametros)
{
	//alert(parametros)
	$.ajax({ async:true, type: "GET", dataType: "html", url:"parts/usuarios/ajax/ejecutarUsuario.php", data:parametros, beforeSend:inicioInsertar, success:llegadaInsertar, timeout:2000, error:problemasInsertar }); 
	return false;
}

function inicioInsertar()
{

      $("#insertarUsuario").html("<IMG src='" + url_ubicacion + "img/cargando.gif' height='15' width='15' alt='Cargando...'>");
}

function llegadaInsertar(datos)
{
	//alert(datos);
	alert("Tu Cuenta ha sido agregada");
	setTimeout("javascript:updateView('parts/usuarios/usuarios.php')"); 
}

function problemasInsertar()
{
	$("#insertarUsuario").text('Problemas en el Servidor.');
}

function cambiar_estatus()
{
	var id_usuario=document.formulario.id.value;
 	var accion = document.formulario.accion.value; 
 
 	var parametros="id_usuario="+id_usuario+"&accion="+accion;	
 	ejecutarUsuario(parametros);
	alert ("Usuario Activado");
}
/************************************************************************
DESCRIPCION: busca caracteres que no sean numeros o letras
*************************************************************************/
function busca_caracter(checkStr) {
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú " + "0123456789";
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {	
allValid = false;
break;
}
}
if (!allValid) {
return (false);
}
}

/************************************************************************
DESCRIPCION: busca caracteres que no sean numeros o letras
*************************************************************************/
function busca_num(checkStr) {
var checkOK = "0123456789";
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
}
if (!allValid) {
return (false);
}
}

/*************************************************************************************************
DESCRIPCI0N: Verifica que si existen espacios en blanco consecutivos en una cadena de caracteres
*************************************************************************************************/
function validarEspacios(checkStr){
var cont=0;
for(i=0;i<checkStr.length;i++)
 {
 	if (checkStr.charAt(i)==" ") {cont++;}
	else cont=0;
 	if (cont==2) {  return (false);}
 
 }
 return (true);
}  

/************************************************************************
DESCRIPCION: busca caracteres que no sean numeros o letras
*************************************************************************/
function busca_letra(checkStr) {
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {	
allValid = false;
break;
}
}
if (!allValid) {
return (false);
}
}
/*****************************************************************
DESCRIPCION: Funcion para validar Email
*****************************************************************/
function valEmail(valor){
    re=/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$/
    if(!re.exec(valor))    {
        return false;
    }else{
        return true;
    }
}

